package 临时软件包.ui;

import com.weiawei.ui.PVPMainBoard;

import javax.swing.*;
import java.awt.event.MouseEvent;

public class InitialMenu extends Menu {

    /**
     * 程序的入口函数
     *
     * <p>通过InitialMenu中的main方法来生成应用</p>
     *
     * @param args main函数的参数
     */
    public static void main(String[] args) {
        new InitialMenu();
    }

    /**
     * 初始化InitialMenu
     *
     * <p>InitialMenu是Menu的子类
     * 该界面为初始菜单界面
     * 通过调用Menu的构造函数来构造InitialMenu的实例</p>
     */
    public InitialMenu() {
        super();
    }

    /**
     * 绘制菜单的背景图片
     *
     * <p>图片使用images文件夹下的menu.png
     * 图片大小和窗口等大，面板容器设置为透明</p>
     */
    @Override
    public void paintBackground() {
        ImageIcon menuImage = new ImageIcon(this.getClass().getResource("/images/simplemenu.png"));
        JLabel menuLabel = new JLabel(menuImage);
        //    添加图片并将其设置为窗口大小
        menuLabel.setBounds(0, 0, this.getWidth(), this.getHeight());
        //    将 menuLabel 置为容器最高层
        this.getLayeredPane().add(menuLabel, new Integer(Integer.MIN_VALUE));
        //    设置面板容器透明
        JPanel menuPanel = (JPanel) this.getContentPane();
        menuPanel.setOpaque(false);
    }

    /**
     * 通过用户点击的区域来相应不同事件
     *
     * <p>设置四块以坐标为区分的响应区域
     * 用户自上而下分别可以触发棋室对战、人人对弈、排行榜和退出游戏四个模块</p>
     *
     * @param e 用户点击的区域
     */
    @Override
    public void mouseClicked(MouseEvent e) {
        int x = e.getX();
        int y = e.getY();
        if (x >= 70 && x <= 300) {
            if (y >= 215 && y <= 270) {
                //    联机对战
                dispose();
                new PVPMainBoard();
            } else if (y >= 327 && y <= 383) {
                //    人机对战
                dispose();
                new ChooseLevel();
            }else if (y >= 439 && y <= 485) {
                //    记录查看
                dispose();
                new RankHistroy();
            } else if (y >= 551 && y <= 597) {
                //    退出游戏
                exitDialog.setVisible(true);
                if (exitDialog.getMessage() == exitDialog.exit) {
                    System.exit(0);
                }
            }
        }
    }
}

